home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 25
/
Aminet 25 (1998)(GTI - Schatztruhe)[!][Jun 1998].iso
/
Aminet
/
game
/
shoot
/
ADoom_src_1_2.lha
/
ADoom_src
/
amiga_sega.s
< prev
next >
Wrap
Text File
|
1998-03-01
|
2KB
|
100 lines
mc68020
XDEF @Sega6
XDEF @Sega3
section text,code
; returns - xxSAxxxxxxCBMXYZxxSAxxDUxxCBRLDU
cnop 0,4
@Sega6 bsr.b GetSega ; xxSAxxDUxxCBRLDU
swap d0
bsr.b GetSega ; xxSAxxDUxxCBRLDU
bsr.b GetSega ; xxSAxxxxxxCBRLDU
bsr.b GetSega ; xxSAxxxxxxCBMXYZ
move.w #$FF00,$DFF034 ; SEL=1
swap d0
rts
; returns - 0000000000000000xxSAxxDUxxCBRLDU
cnop 0,4
@Sega3 moveq #0,d0
bsr.b GetSega
move.w #$FF00,$DFF034 ; SEL=1
rts
cnop 0,4
GetSega movem.l d1-d3,-(a7)
clr.w d0
move.w #$FF01,$DFF034 ; SEL=1, dump caps
moveq #22,d3
.hl tst.b $BFE001
dbra d3,.hl
btst #7,$BFE001
bne.b .1
bset #4,d0 ; B/0
.1 move.w $DFF016,d1
btst #14,d1
bne.b .2
bset #5,d0 ; C/0
.2 move.w $DFF00C,d1
btst #1,d1
beq.b .3
bset #3,d0 ; R/M
.3 btst #9,d1
beq.b .4
bset #2,d0 ; L/X
.4 move.w d1,d2
lsl.w #1,d2
eor.w d2,d1
btst #1,d1
beq.b .5
bset #1,d0 ; D/Y
.5 btst #9,d1
beq.b .6
bset #0,d0 ; U/Z
.6 lsl.w #8,d0
move.w #$EF01,$DFF034 ; SEL=0, dump caps
moveq #22,d3
.ll tst.b $BFE001
dbra d3,.ll
btst #7,$BFE001
bne.b .11
bset #4,d0 ; A/0
.11 move.w $DFF016,d1
btst #14,d1
bne.b .12
bset #5,d0 ; S/0
.12 move.w $DFF00C,d1
btst #1,d1
beq.b .13
bset #3,d0 ; 0/1
.13 btst #9,d1
beq.b .14
bset #2,d0 ; 0/1
.14 move.w d1,d2
lsl.w #1,d2
eor.w d2,d1
btst #1,d1
beq.b .15
bset #1,d0 ; D/1
.15 btst #9,d1
beq.b .16
bset #0,d0 ; U/1
.16 ror.w #8,d0
movem.l (a7)+,d1-d3
rts
END